/**
 * 演示程序当前的 “注册/登录” 等操作，是基于 “本地存储” 完成的
 * 当您要参考这个演示程序进行相关 app 的开发时，
 * 请注意将相关方法调整成 “基于服务端Service” 的实现。
 **/
(function($, owner) {
	/**
	 * 用户登录
	 **/
	owner.dologin = function(url ,loginInfo, callback) {
		callback = callback || $.noop;
//		loginInfo = loginInfo || {};
//		loginInfo.loginname = loginInfo.loginname || '';
//		loginInfo.password = loginInfo.password || '';
		
		if(!loginInfo.clientid || null == loginInfo.clientid){
			console.debug("login sync clientid is null")
			loginInfo.clientid = '' ;
		}
		
//		loginInfo.token = loginInfo.token || '' ;
//		loginInfo.appid = loginInfo.appid || '' ;
//		loginInfo.appkey = loginInfo.appkey || '' ;
		loginInfo.debug = loginInfo.debug || false ;
//		if (loginInfo.loginname.length < 5) {
//			return callback('账号最短为 5 个字符');
//		}
//		if (loginInfo.password.length < 6) {
//			return callback('密码最短为 6 个字符');
//		}

		console.debug("loginInfo is "+ JSON.stringify(loginInfo) + url) ;
		
		xhz.post(url,loginInfo,function(data){
			console.debug(" login request  url is   " + url +"  data   "+ JSON.stringify(data) ) ;
			
			if(data.code == -1){
				return callback("登陆失败：账号或密码不正确");
			}else{
				data.data.loginType = loginInfo.loginType;
				xhz.setUserName(data.data) ;
				console.debug(JSON.stringify(xhz.getUserName() )) ;
				return owner.createState(data.data, callback);
			}
		},function(xhr, type, errorThrown){
			console.debug(" login request  url is   " + url +"  xhr   "+ JSON.stringify(xhr)+" type  "+ type+" errorThrown"+ errorThrown) ;
			return callback("服务器请求异常，请稍后再试");
		})
	};

	owner.createState = function(data, callback) {
		var user = xhz.getUser();
		xhz.setUser(data);
		return callback();
	};

	/**
	 * 新用户注册
	 **/
	owner.reg = function(regInfo, callback) {
		callback = callback || $.noop;
		regInfo = regInfo || {};
		regInfo.account = regInfo.account || '';
		regInfo.password = regInfo.password || '';
		if (regInfo.account.length < 5) {
			return callback('用户名最短需要 5 个字符');
		}
		if (regInfo.password.length < 6) {
			return callback('密码最短需要 6 个字符');
		}
		if (!checkEmail(regInfo.email)) {
			return callback('邮箱地址不合法');
		}
		var users = JSON.parse(localStorage.getItem('$users') || '[]');
		users.push(regInfo);
		localStorage.setItem('$users', JSON.stringify(users));
		return callback();
	};



	/**
	 * 找回密码
	 **/
	owner.forgetPassword = function(email, callback) {
		callback = callback || $.noop;
		if (!checkEmail(email)) {
			return callback('邮箱地址不合法');
		}
		return callback(null, '新的随机密码已经发送到您的邮箱，请查收邮件。');
	};
	
}(mui, window.login = {}));